<?php

declare(strict_types=1);

namespace App\Helpers;

/**
 * Obtiene opciones de autenticación.
 */
class Auth
{
    private const COOKIE_VARNAME = 'userAuth';

    private const COOKIE_OPTIONS = [
        'path' => '/',
        'httpOnly' => true,
    ];

    private const EXPIRATION_VARNAME = 'expire';

    /**
     * Obtiene el nombre de la cookie de autenticación.
     */
    public static function getCookieVarname(): string
    {
        return self::COOKIE_VARNAME;
    }

    /**
     * Obtiene el nombre de la variable de autenticación.
     */
    public static function getVarname(): string
    {
        return self::getCookieVarname();
    }

    /**
     * Obtiene las opciones de la cookie de autenticación.
     */
    public static function getCookieOptions(): array
    {
        return self::COOKIE_OPTIONS;
    }

    /**
     * Obtiene el nombre de la variable de expiración de la cookie de autenticación.
     */
    public static function getExpirationVarname(): string
    {
        return self::EXPIRATION_VARNAME;
    }

    /**
     * Genera el tiempo de expiración de la cookie de autenticación.
     */
    public static function generateCookieExpiration(): int
    {
        return strtotime('+1 month'); // 1 mes.
    }
}
